// 实现bind apply call
Function.prototype.mycall = function (context = window, ...args) {
    if (this === Function.prototype) {  // 判断是否Function.prototype.mycall 调用
        return "undefinend"
    }
    let x = Symbol();
    context[x] = this;
    let res = context[x](args)
    delete context[x]
    return res;
}

Function.prototype.myapply = function (context = window, args) {
    if (this === Function.prototype) {  // 判断是否
        return "undefinend"
    }
    let x = Symbol();
    context[x] = this;
    if (Array.isArray(args)) { // 

    } else {

    }
    let res = context[x](...args)
    delete context[x]
    return res;
}

Function.prototype.myBind = function (context = window, ...args) {
    return function () {
        let x = Symbol();
        context[x] = this;
        let res = context[x](...args)
        delete context[x]
        return res;
    }
}